import CryptoJS from 'crypto-js'

const key = CryptoJS.enc.Utf8.parse('47FC4124CF94E070') // 密钥
const iv = CryptoJS.enc.Utf8.parse('ovOh2xYoRdfATob6') // 密钥偏移量


// 加密方法
export const Encrypt = function(word) {
	let srcs = CryptoJS.enc.Utf8.parse(word);
	// 对称加密算法主要有AES、DES、3DES / 非对称加密算法主要有RSA、DSA、RCC
	// iv(初始变量)
	// key(加密密钥)
	// mode(加密模式 主要有CBC(默认)、CFB、CTR、OFB、ECB)
	// padding(填充方式 主要有Pkcs7(默认)、Iso97971、AnsiX923、Iso10126、ZeroPadding)

	let encrypted = CryptoJS.AES.encrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad
			.Pkcs7 });
	let encryptedBase64Data = CryptoJS.enc.Base64.stringify(encrypted.ciphertext);
	return encodeURIComponent(encryptedBase64Data);
}

// 解密方法
export const Decrypt = function(word) {
	word = decodeURIComponent(word)
	let encryptedHexStr = CryptoJS.enc.Base64.parse(word);
	let srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr);
	let decrypt = CryptoJS.AES.decrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 });
	let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
	return decryptedStr.toString();
}

